Wear-leveling is a memory management technique used to prevent over-cycling of a particular area of nonvolatile memory. Wear-leveling often includes the establishment and maintenance of large indirection tables in dynamic random access memory (DRAM) that are referenced in the logical-to-physical address mapping used in memory accesses. While this type of memory management may effectively prevent over-cycling, it may also require considerable firmware complexity.